The present invention relates to networks that can accommodate a wide variety of mobile nodes (e.g. laptop computers). More specifically, the invention relates to address translation systems for mapping IP addresses of the mobile nodes to globally unique IP addresses available on a network where mobile nodes temporarily attach.
Private networks are commonly connected to the Internet through one or more routers so that hosts (PCs or other arbitrary network entities) on the private network can communicate with nodes on the Internet. Typically, the host will send packets to locations both within its private network and on the Internet. To receive packets from the Internet, a private network or a host on that network must have a globally unique 32-bit IP address (or, if necessary, a larger address as specified in IP version 6). Each such IP address has a four octet format. Typically, humans communicate IP addresses in a dotted decimal format, with each octet written as a decimal integer separated from other octets by decimal points.
Global IP addresses are issued to enterprises by a central authority known as the Internet Assigned Number Authority (xe2x80x9cIANAxe2x80x9d). The IANA issues such addresses in one of three commonly used classes. Class A IP addresses employ their first octet as a xe2x80x9cnetidxe2x80x9d and their remaining three octets as a xe2x80x9chostid.xe2x80x9d The netid identifies the enterprise network and the hostid identifies a particular host on that network. As three octets are available for specifying a host, an enterprise having class A addresses has 224 (nearly 17 million) addresses at its disposal for use with possible hosts. Thus, even the largest companies vastly under use available class A addresses. Not surprisingly, Class A addresses are issued to only very large entities. Class B addresses employ their first two octets to identify a network (netid) and their second two octets to identify a host (hostid). Thus, an enterprise having class B addresses can use those addresses on approximately 64,000 hosts. Finally, class C addresses employ their first three octets as a netid and their last octet as a hostid. Only 254 host addresses are available to enterprises having a single class C netid.
With increasing frequency people travel, for business and pleasure, with portable computers. Laptop computers have become ubiquitous in the work force. In an effort to become ever more productive, individuals travel with these tools so that they can work essentially anywhere. Often work requires that the individual access the Internet. Even if their work does not require this, many individuals wish to remain in communication with their colleagues via the Internet.
Many enterprises would like to accommodate this propensity by allowing all customers or visitors to use their own computers to access the Internet while they visit the enterprise. Examples of such enterprises include hotels, airport kiosks, hospitals, etc.
If a user desires to take a computer that is normally attached to a home network and travel with it so that it attaches to a different, remote, network, the node cannot automatically communicate over the remote network. First, the mobile node is usually configured to send messages through a specified router at its home network. Because it is no longer present at the home network and the specified router cannot be immediately located, communications from the mobile node will not be sent by the remote network. In addition, communications to the mobile node will be routed to the node""s home network. Because the router there will not know where to forward the packet, the communications will be lost.
To allow remote connections, some mobile computers use Dynamic Host Configuration Protocol (DHCP), which is described in RFC 2131, incorporated herein by reference for all purposes. In this protocol, the computer is told to ask the network xe2x80x94according to prescribed rulesxe2x80x94for a temporary network address. Thus, DHCP allows mobile nodes to connect to the Internet via remote networks. From the perspective of a hotel or other entity wishing to provide Internet access to all visitors, this is well and good so long as all visiting nodes are configured to work within the DHCP protocol. Unfortunately, this is not the case. Many computer users, who have traditionally been stationary users, have obtained mobile computers and now travel with these machines. Many such users are not even aware of DHCP. Thus, if a hotel is to rely on DHCP for the connectivity of its visitors, many of its visitors will not be able to easily connect.
There are alternative, more universally applicable, possibilities. If the visiting node has a statically configured IP address, that IP address can be adjusted. Conventional computer operating systems such as Windows 95(copyright), Windows 98(copyright), Windows NT(copyright), Macintosh(copyright) OS etc. have a setting in which the user can choose a new IP address or set the computer to dynamically take on an IP address assigned by the new network. Thus, a computer can have its IP address reset to be compatible with a remote network. The problem with this approach is that the cost of reconfiguring the IP address (it is not a trivial procedure) in a remote computer exceeds the advantage to the enterprise providing the remote network connection. Further, when the computer moves back to its home network (or to some other network), it must again have its IP address reset via the complicated procedure. Except in the rare case of an unusually sophisticated user, at least two adept persons other than the computer user must be involved in cycling the computer from its home IP address to a remote IP address and back again.
Alternatively, a remote network configured with a Network Address Translation (or xe2x80x9cNATxe2x80x9d) could be reconfigured to accommodate the visiting node. However, this will require a highly sophisticated network administrator, in communication with the visitor at her computer, resetting the remote network""s list of available xe2x80x9cinside addressesxe2x80x9d for address translation. This approach is even less cost effective than setting and resetting the static IP address of the visiting node.
FIG. 1A illustrates the general-purpose currently available approaches to network connectivity for a statically configured laptop or other mobile node. As illustrated, the Internet 101 allows nodes on a home network 103 to communicate with nodes on a remote network 105. In this specific example, a node 107 having a static IP address is normally connected to home network 103. In other words, network 103 is the home network for mobile node 107.
Under some circumstances, mobile node 107 migrates from its home network 103 to the remote network 105. This is illustrated by the dashed arrows in the figure. In one example, home network 103 is the enterprise network for an employer that owns node 107 and remote network 105 is a network of a hotel where the owner of node 107 visits.
In order for node 107 to have network conductivity at remote network 105, either it or network 105 must undergo some transformation. A process block 109 illustrates this transformation. As indicated, the static IP address of node 107 may be reconfigured or a network address translation component of remote network 105 must be reconfigured. As pointed out, both of these options fail to allow a convenient and easy connection.
In view of the above, it has become apparent to the inventors that hotels and other entities desiring to provide network connectivity for their visitors require an improved technique for providing that connectivity to the heterogeneous collection of visiting computers that they might encounter.
The present invention provides systems and methods that allow a computer network to automatically learn that a visiting node has attached and then automatically establish a virtual gateway so that the visiting node can communicate through the network with local nodes, other visiting nodes, and/or Internet sites. The network preferably performs an address translation to enable the connectivity of the visiting node. Specifically, the network maintains one or more globally unique outside addresses that point to it. In other words, packets addressed to the outside addresses are routed to the network. When a visiting node connects to the network, the network translates the source address of packets from the node to a particular one of its outside addresses. The network also replaces destination addresses in packets received by the network that are addressed to the particular outside address. Specifically, the network replaces the globally unique outside address with the xe2x80x9chomexe2x80x9d address of the visiting node. It then forwards the packet to the visiting node. Note that the network may be capable of handling any type of visiting node, regardless of its address or home network.
One aspect of the invention relates to a method of providing network connections for visiting nodes at a remote network (e.g., a network at a hotel), with the visiting nodes being configured to connect through a home network that is remote from the remote network. Such method may be characterized as including the following: (a) establishing a virtual gateway for a visiting node, which virtual gateway behaves as the home default gateway for the visiting node; and (b) in a packet received at the virtual gateway, switching a home IP address of the visiting node with a globally unique outside address provided by the remote network.
The virtual gateway may be established by sending a default gateway packet to the visiting node. The default gateway packet indicates that the remote network can handle Internet traffic from the visiting node. Preferably, the default gateway packet identifies a gateway node on the remote network that is configured to act as virtual gateway. In a specific embodiment, the default gateway packet is a reply to a default gateway ARP (Address Resolution Protocol) packet sent by the visiting node.
Switching the home IP address with a globally unique outside address can take place on both in-bound and out-bound packets. When a packet is sent from the visiting node, the source IP address of such packets is replaced with the globally unique outside address. The system will then forward the packet to the appropriate destination on the Internet. When a packet is sent from an Internet node to the visiting node (as identified by the globally unique outside address the destination IP address), the destination IP address of the packet is replaced with the home IP address of the visiting node.
During a given session a global IP address should be used consistently. Thus, an address is selected for a given visiting node and temporarily assigned to that nodexe2x80x94usually for at least the duration of a session (e.g., during the lifetime of a TCP connection). To preserve the association of the visiting node""s home address and the globally unique address during the session, the remote network may create a translation entry specifying the home IP address of the visiting node and the globally unique outside address. In addition to the visiting node""s home address and the associated globally unique address, a translation entry may include an Internet destination IP address and source and destination MAC addresses. Preferably, the translation entry is provided with other entries in the form of an address translation table. When a packet is received from an outside or inside source, the remote network may check its list of translation entries to identify the home IP address of the visiting node and the globally unique outside address.
In addition, to providing a virtual gateway, the remote network may provide a virtual name server for Domain Name System (DNS) requests. To do so, it must first determine that the visiting node has made a Domain Name System request addressed to a home name server that is not on the remote network. It may then redirect the DNS request to a remote name server to which the remote network is configured to submit such requests. In this manner, the visiting node receives DNS service transparently, even though its home name server may be inaccessible from the remote network.
Another aspect of the invention provides an apparatus configured to provide network connections for visiting nodes at a remote network. The apparatus may be characterized by the following features: (a) one or more processors; (b) a memory in communication with at least one of the processors; and (c) an address translation list (e.g., an address translation table) including one or more translation entries, each specifying a home IP address of the visiting node and a globally unique outside address. In this apparatus, at least one of the processors, possibly in conjunction with the memory, is configured or designed to act as a virtual gateway for a visiting node, which virtual gateway behaves as the home default gateway for the visiting node. The virtual gateway may send default gateway packets (such as replies to default gateway ARPs) in the manner described above. Further, the processor may be configured to redirect DNS requests from the visiting node to a local name server as described above.
Configuring the processor(s) and/or memory to perform the functions described above may be accomplished with an operating system running on the network device. Alternatively, some or all of these functions may be programmed by an application that runs on the operating system. Still further, the hardware may be specially designed to perform these functions. Preferably, the apparatus, including the processor and memory, is a router or other network device on the remote network. This allows the device to simulate the home router or gateway of visiting nodes connecting to the network. In principle, there is no reason why the systems of this invention can not run on other devices such as firewalls or other appropriately configured network nodes.
Another aspect of the invention relates to program products that include a machine-readable medium on which are stored instructions for performing methods of this invention. Such program products may also store address translation lists (e.g., tables) that can be used with this invention.
These and other features and advantages of the present invention will be presented in more detail in the following specification of the invention and the associated figures.